今天我們來介紹雲端的監控, Cloud Operations Suite 。這個服務以前被稱做 Stackdriver 。雲端的監控總共可以分為,Monitoring、Logging、Error Reporting、Tracing 以及 Debugging。
這些監控相關的程式 (Agent) 支援跨平台,除了 GCP 之外,也可以安裝在 AWS 或是自己的主機上面,這些服務皆有免費額度可以使用。
伺服器的監控是一件非常重要的事情,這是 SRE (Site Reliability Engineering) 最重要的工作。
Monitoring 支援了各種的指標,包含平台、系統、應用程式,可以將圖表、警報顯示於儀表板 (Dashboards) 中。
Cloud Logging 提供分析 GCP 以及 AWS 上的各種事件,Logging 包含了 紀錄的儲存、使用者介面 (Log Viewer) 以及 API,可以透過程式化的方式管理 Log。
與 Monitoring 一樣,我們也可以透過腳本將 Agent 安裝在自己的伺服器中,監控伺服器的網路流量、IP 來源等資訊。如果我們想要 Query 大量的 Logging 資料,也可以使用 BigQuery 等程式來達成。
Error Reporting 可以統計、分析在雲端服務中的各種錯誤,提供了錯誤的通知、儀表板等功能。支援 App Engine 、 Apps Script 、 Compute Engine 、 Cloud Functions 、 Cloud Run 、 GKE 、 Amazon EC2 等平台。當我們使用以上的平台,部屬過程與運行過程發生任何的錯誤,都可以在 Error Reporting 中找到相應的 Log。
目前支援的程式語言有 Go、Java、Node.js、PHP、Python、Runy。
Cloud Tracing 是一個分散式的追蹤系統,可以追蹤並蒐集延遲 (latency) 相關的資料。蒐集的目標包含App Engine 、 HTTP(S) 附載平衡器,或其他 Cloud Trace SDKs 支援的目標。可以接近即時的顯示資訊,包含了延遲報告、每個 URL 相關的延遲資訊。
Cloud Debugging 可以在不停止程式的狀況下檢查程式。包含了 Snapshot 與 Logpoints 功能。
Snapshot 功能可以將程式的 Call Stack 以及區域變數等資料全部都 Dump 出來,以方便偵錯;Logpoints則可以在服務中插入 Log,方便監控。
目前支援的語言有 Java、Python、Go、Node.js、Ruby、PHP 以及 .NET Core